/*
** ---> This Test State is testing the following behaviours
** ---> Path following - LookWhereYoureGoing
**
** ---> Louie
*/

#ifndef TEST_STATE_2_H
#define TEST_STATE_2_H

#include "GameState.h"
#include "Singleton.h"
#include "GameCamera.h"

#include "Unit.h"
#include "FollowPath.h"
#include "LookWhereYoureGoing.h"

#include "Path.h"

class TestState2 : public Engine::GameState, public Engine::NonCopyable
{
	private:
		friend class Engine::Singleton <TestState2>;
		unsigned int m_hash;//hash stored once so it wont have to be calced each time 

		TestState2();

		Engine::Unit *m_target;
		Engine::FollowPath *sb_fap;
		Engine::LookWhereYoureGoing *sb_lwyg;
		Engine::Path m_path;

	public:
		//inherited from GameState
		const char* GetName() const {return "TestState2";}
		unsigned int GetHash() const {return m_hash;}
		void Activate();
		void Update();
		void Draw();

		void OnKeyboardEvent(const SDL_KeyboardEvent& k);
		void OnQuit();
};

typedef Engine::Singleton <TestState2> TheTestState2;

#endif